package com.yifang.yibingproject.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifang.yibingproject.dto.*;
import com.yifang.yibingproject.entity.SysUserEntity;
import com.yifang.yibingproject.query.ForbiddenPageQuery;
import com.yifang.yibingproject.query.StaffPageQuery;

import java.util.List;


/**
 * @Author: Lew
 * @DateTime: 2020/10/17 9:36 下午
 * @Description:
 */
public interface SysUserService extends IService<SysUserEntity> {

    /**
     * 删除员工
     * @param id
     * @return
     */
    String delStaff(String id);




    /**
     * 获取当前用户信息
     * @return
     */
    CurrentUserInfoDTO getCurrentUserInfo();

    /**
     * 获取用户详细信息
     * @param id
     * @return
     */
    UserDetailDTO getUserDetail(String id);

    /**
     * 禁用账户
     * @param id
     * @param reason
     * @return
     */
    boolean forbidden(String id,String reason);

    /**
     * 解禁账户
     * @param id
     * @return
     */
    boolean liftBan(String id);

    /**
     * 禁用账户列表
     * @param query
     * @return
     */
    Page<ForbiddenDTO> forbiddenList(ForbiddenPageQuery query);


    /**
     * 清除用户类型
     * @param id
     * @return
     */
    Boolean clearUserType(String id);

    /**
     * 保存用户权限操作
     * @param dto
     * @return
     */
    boolean saveActionRight(ActionRightEditDTO dto);

    /**
     * 员工列表
     * @param query
     * @return
     */
    Page<StaffDTO> staffList(StaffPageQuery query);



    /**
     * 编辑员工信息跳转页面
     * @param id
     * @return
     */
    StaffEditDTO updateStaffpage(Long id);


    /**
     * 新增员工
     * @param dto
     * @return
     */
    String addStaff(StaffEditDTO dto);

    /**
     * 编辑员工信息
     * @param dto
     * @return
     */
    String updateStaff(StaffEditDTO dto);



    /**
     * 根据用户ID集合获取用户列表
     * @param ids
     * @return
     */
    List<SysUserEntity> safetyGetListByIds(List<Long> ids);
}
